home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 145
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin
/
tools
/
sharp
/
sxwork1.lzh
/
INCLUDE
/
SXMEMORY.H
< prev
next >
Wrap
Text File
|
1994-02-20
|
5KB
|
234 lines
/*
* sxmemory.h X68k SX_SYSTEM ver 2.01 Copyright 1994 SHARP/First Class Technology
*/
#ifndef __SXMEMORY_H
#define __SXMEMORY_H
#ifndef __SXDEF2_H
#include <sxdef2.h>
#endif
#ifdef FORWORD
#define __PROTO_TYPE
#endif
#ifdef __STDC__
#define __PROTO_TYPE
#endif
typedef struct Block Block;
typedef struct Master Master;
/*
* メモリマン (Memory Man)
*/
#define M_RSC (1 << 1)
#define M_MASTER (1 << 2)
#define M_UNPRG (1 << 3)
#define M_LOCK (1 << 4)
#define M_NONREL (1 << 5)
#define M_TRAIL (1 << 6)
#define M_ALLOC (1 << 7)
enum MMErrorCode {
ER_NOMEM = -0x0400,
ER_ODDADR,
ER_ZONEID,
ER_NULLPTR,
ER_NULLHDL,
ER_EMPHDL,
ER_NOTFRE,
ER_NOTALO,
ER_NOTNON,
ER_NOTREL,
ER_NOTLOC,
ER_NOTUNL,
ER_NOTPUR,
ER_NOTUNP,
ER_ILPROP,
ER_DIFTYP,
ER_LESSIZ,
ER_SPLIT,
ER_SIZEPU /* -0x03ee */
};
struct Heap {
long ID;
long version;
void *heapData;
void *trailer;
long moreMst;
void (*fncCompact)(void);
void (*fncPurge)(Heap *, Handle);
void (*fncMelt)(void);
int (*fncGrowHeap)(Heap *, long);
long totalFree;
Master *freeMst;
Pointer alloc;
Pointer spare;
Pointer purge;
char vis;
char pad;
short usrFlag;
long cntMemCompact;
long cntMemPurge;
long cntMemMelt;
long cntPtrNew;
long cntPtrDispose;
long cntMstBind;
long cntMstFree;
long cntMst;
long usrWord;
unsigned char data[_VARLEN]; /* ここは可変長データの先頭 */
};
struct Block {
long physicalSize;
union {
Heap *toHeap;
long relativeHdl;
} u;
unsigned char property;
unsigned char sizeCorrection;
short usrFlag;
long usrWord;
unsigned char data[_VARLEN]; /* ここは可変長データの先頭 */
};
struct Master {
union {
void *toBlockData;
Master *next;
} u;
short number;
char state;
char pad;
};
#ifdef __PROTO_TYPE
Heap *MMHeapInit(void *, void *, int, int (*)(Heap *, long), BOOLEAN);
Master *MMBlockMstGet(Heap *, Block *);
Block *MMMemCompact(Heap *, long);
Block *MMMemPurge(Heap *, long);
Block *MMMemMelt(Heap *, long);
Block *MMMemReserve(Heap *, long);
long MMMemSizeFree(Heap *);
long MMMemSizeComp(Heap *);
long MMMemSizePurg(Heap *);
long MMMemSizeMelt(Heap *);
int MMMemErrorGet(void);
int MMMemErrorSet(int);
Heap *MMChGet(void);
void MMChSet(Heap *);
Pointer MMChPtrNew(long);
int MMChMstMore(void);
Master *MMChMstNew(void);
_Handle MMChHdlNew(long);
Block *MMChCompact(long);
Block *MMChPurge(long);
Block *MMChMelt(long);
Block *MMChReserve(long);
long MMChFreeSize(void);
int (*MMChGrowHeapGet(void))(Heap *, long);
int (*MMChGrowHeapSet(int (*)(Heap *, long)))(Heap *, long);
void (*MMChPurgeGet(void))(Heap *, _Handle);
void (*MMChPurgeSet(void (*)(Heap *, _Handle)))(Heap *, _Handle);
void (*MMChCompactGet(void))(void);
void (*MMChCompactSet(void (*)(void)))(void);
Pointer MMPtrNew(Heap *, long);
Heap *MMPtrHeap(Pointer);
void MMPtrDispose(Pointer);
long MMPtrSizeGet(Pointer);
int MMPtrSizeSet(Pointer, long);
int MMPtrPropGet(Pointer);
int MMPtrPropSet(Pointer, int);
int MMMstAllocate(Heap *);
Master *MMMstBind(Heap *);
_Handle MMHdlNew(Heap *, long);
Heap *MMHdlHeap(_Handle);
void MMHdlDispose(_Handle);
long MMHdlSizeGet(_Handle);
int MMHdlSizeSet(_Handle, long);
int MMHdlEmpty(_Handle);
int MMHdlRealloc(_Handle, long);
int MMHdlMoveHi(_Handle);
int MMHdlPropGet(_Handle);
int MMHdlPropSet(_Handle, int);
void MMHdlLock(_Handle);
void MMHdlUnlock(_Handle);
void MMHdlPurge(_Handle);
void MMHdlNoPurge(_Handle);
int MMHdlIns(_Handle, long, long);
int MMHdlDel(_Handle, long, long);
Block *MMMemHiReserve(Heap *, long);
Block *MMPtrBlock(Pointer);
Block *MMHdlBlock(_Handle);
Master *MMHdlMstGet(Heap *, void *);
Block *MMChHiReserve(long);
#undef __PROTO_TYPE
#else
Heap *MMHeapInit();
Master *MMBlockMstGet();
Block *MMMemCompact();
Block *MMMemPurge();
Block *MMMemMelt();
Block *MMMemReserve();
long MMMemSizeFree();
long MMMemSizeComp();
long MMMemSizePurg();
long MMMemSizeMelt();
int MMMemErrorGet();
int MMMemErrorSet();
Heap *MMChGet();
void MMChSet();
Pointer MMChPtrNew();
int MMChMstMore();
Master *MMChMstNew();
_Handle MMChHdlNew();
Block *MMChCompact();
Block *MMChPurge();
Block *MMChMelt();
Block *MMChReserve();
long MMChFreeSize();
int (*MMChGrowHeapGet())();
int (*MMChGrowHeapSet())();
void (*MMChPurgeGet())();
void (*MMChPurgeSet())();
void (*MMChCompactGet())();
void (*MMChCompactSet())();
Pointer MMPtrNew();
Heap *MMPtrHeap();
void MMPtrDispose();
long MMPtrSizeGet();
int MMPtrSizeSet();
int MMPtrPropGet();
int MMPtrPropSet();
int MMMstAllocate();
Master *MMMstBind();
_Handle MMHdlNew();
Heap *MMHdlHeap();
void MMHdlDispose();
long MMHdlSizeGet();
int MMHdlSizeSet();
int MMHdlEmpty();
int MMHdlRealloc();
int MMHdlMoveHi();
int MMHdlPropGet();
int MMHdlPropSet();
void MMHdlLock();
void MMHdlUnlock();
void MMHdlPurge();
void MMHdlNoPurge();
int MMHdlIns();
int MMHdlDel();
Block *MMMemHiReserve();
Block *MMPtrBlock();
Block *MMHdlBlock();
Master *MMHdlMstGet();
Block *MMChHiReserve();
#endif __PROTO_TYPE
#endif __SXMEMORY_H